package cn.iocoder.yudao.module.shop.controller.admin.daystatistics.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

/**
 * 每日手工费统计 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ShopDayStatisticsBaseVO {

    @Schema(description = "日期id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15393")
    @NotNull(message = "日期id不能为空")
    private String dateId;

    @Schema(description = "总支数", requiredMode = Schema.RequiredMode.REQUIRED, example = "28405")
    @NotNull(message = "总支数不能为空")
    private Integer totalCount;

    @Schema(description = "总流水", requiredMode = Schema.RequiredMode.REQUIRED, example = "7821")
    @NotNull(message = "总流水不能为空")
    private Integer totalPrice;

    @Schema(description = "余额消耗", requiredMode = Schema.RequiredMode.REQUIRED, example = "13100")
    @NotNull(message = "余额消耗不能为空")
    private Integer walletPrice;

    @Schema(description = "现金流水", requiredMode = Schema.RequiredMode.REQUIRED, example = "14560")
    @NotNull(message = "现金流水不能为空")
    private Integer cashPrice;

    @Schema(description = "次数支付", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "次数支付不能为空")
    private Integer timesCharge;

    @Schema(description = "总人次", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "总人次不能为空")
    private Integer totalMemberTimes;

    @Schema(description = "会员人次", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "会员人次不能为空")
    private Integer vipTimes;

    @Schema(description = "非会员人次", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "非会员人次不能为空")
    private Integer novipTimes;

    @Schema(description = "新客进店数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "31606")
    @NotNull(message = "新客进店数量不能为空")
    private Integer newMemberCount;

    @Schema(description = "充值总人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "8491")
    @NotNull(message = "充值总人数不能为空")
    private Integer chargeTotalCount;

    @Schema(description = "充值总金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "19837")
    @NotNull(message = "充值总金额不能为空")
    private Integer chargeTotalPrice;

    @Schema(description = "续充个数", requiredMode = Schema.RequiredMode.REQUIRED, example = "15987")
    @NotNull(message = "续充个数不能为空")
    private Integer chargeContinueCount;

    @Schema(description = "首充个数", requiredMode = Schema.RequiredMode.REQUIRED, example = "18279")
    @NotNull(message = "首充个数不能为空")
    private Integer chargeFirstCount;

    @Schema(description = "未续充个数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1125")
    @NotNull(message = "未续充个数不能为空")
    private Integer chargeNoContinueCount;

    @Schema(description = "现金用户，大于1次之后充值", requiredMode = Schema.RequiredMode.REQUIRED, example = "5350")
    @NotNull(message = "现金用户，大于1次之后充值不能为空")
    private Integer chargeAfterTimesCount;

}
